package com.ygqh.baby.mapper;

import com.ygqh.baby.ao.QueryInfo;
import com.ygqh.baby.model.FortuneBagDetailVo;
import com.ygqh.baby.model.FortuneBagVo;
import com.ygqh.baby.po.YgFortuneBag;
import com.ygqh.baby.po.YgFortuneBagExample;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author admin
 */
public interface YgFortuneBagMapper {
	int countByExample(YgFortuneBagExample example);

	int deleteByExample(YgFortuneBagExample example);

	int deleteByPrimaryKey(Long id);

	int insert(YgFortuneBag record);

	int insertSelective(YgFortuneBag record);

	List<YgFortuneBag> selectByExample(YgFortuneBagExample example);

	YgFortuneBag selectByPrimaryKey(Long id);

	int updateByExampleSelective(@Param("record") YgFortuneBag record, @Param("example") YgFortuneBagExample example);

	int updateByExample(@Param("record") YgFortuneBag record, @Param("example") YgFortuneBagExample example);

	int updateByPrimaryKeySelective(YgFortuneBag record);

	int updateByPrimaryKey(YgFortuneBag record);

	int countSuper(@Param("productName") String productName);

	List<FortuneBagVo> selectSuper(@Param("queryInfo") QueryInfo queryInfo, @Param("productName") String productName);

	/**
	 * 根据福袋skuCode获取福袋信息列表
	 * <p>
	 * 这里的库存返回m站真实库存
	 *
	 * @param batchNo     福袋活动批次
	 * @param skuCodeList 福袋skuCode
	 * @param hasStock
	 * @return List<YgFortuneBag>
	 */
	List<YgFortuneBag> selectFortuneBagListWithStock(@Param("batchNo") String batchNo, @Param("skuCodeList") List<String> skuCodeList,
													 @Param("hasStock") Boolean hasStock);

	int countDetailSuper(@Param("batchNo") String batchNo, @Param("skuCode") String skuCode);

	List<FortuneBagDetailVo> selectDetailSuper(@Param("queryInfo") QueryInfo queryInfo, @Param("batchNo") String batchNo, @Param("skuCode") String skuCode);

	int insertBatch(@Param("list") List<YgFortuneBag> recordList);

	int updateBatch(@Param("list") List<YgFortuneBag> recordList);

	List<FortuneBagVo> selectBagInfoByCopy(@Param("skuCode") String skuCode);

	List<FortuneBagDetailVo> selectBagDetailByCopy(@Param("batchNo") String batchNo, @Param("skuCode") String skuCode,
												   @Param("sizeName") String sizeName);
}



